ElementTiming: move tests to WPT This CL moves Element Timing tests from http/tests to external/wpt. The php files used are rewritten in python. Some of the images used are copied over because the sizes/types sometimes matters. supported-element-type.any.js is removed: it was invalid format before, now it's redundant with supported-element-type.html, and we do not want workers to have 'element' in supportedEntryTypes. Bug: 879270 Change-Id: Ic2297e09b0add32b4fbda161fcce7901d7c03dea Reviewed-on: https://chromium-review.googlesource.com/c/1443968 Reviewed-by: Yoav Weiss <yoavweiss@chromium.org> Commit-Queue: Nicolás Peña Moreno <npm@chromium.org> Cr-Commit-Position: refs/heads/master@{#627437} diff --git a/element-timing/progressively-loaded-image.html b/element-timing/progressively-loaded-image.html new file mode 100644 index 0000000..6fdff39 --- /dev/null +++ b/element-timing/progressively-loaded-image.html
@@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<meta charset=utf-8 /> +<title>Element Timing: buffer elements before onload</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src="resources/element-timing-helpers.js"></script> +<body> +<script> + let beforeRender; + // Number of characters to be read on the initial read, before sleeping. + // Should be sufficient to do at least a first scan. + let numInitial = 75; + let sleep = 500; + async_test(function(t) { + const observer = new PerformanceObserver( + t.step_func_done(function(entryList) { + assert_equals(entryList.getEntries().length, 1); + const entry = entryList.getEntries()[0]; + // Since the image is only fully loaded after the sleep, the render timestamp + // must be greater than |beforeRender| + |sleep|. + checkElement(entry, 'my_image', beforeRender + sleep); + }) + ); + observer.observe({entryTypes: ['element']}); + + const img = document.createElement('img'); + img.src = 'resources/progressive-image.py?name=square20.jpg&numInitial=' + + numInitial + '&sleep=' + sleep; + img.setAttribute('elementtiming', 'my_image'); + document.body.appendChild(img); + beforeRender = performance.now(); + t.step_timeout(() => {assert_true(0);}, 2000); + }, "Element Timing: image render timestamp occurs after it is fully loaded."); +</script>